package com.moss.cloud.common.core.utils;

import cn.hutool.crypto.symmetric.SymmetricCrypto;

/**
 * 国密sm4工具类
 *
 * @author 瑾年
 * @date 2024年1月25日
 */
public class Sm4Util {
    /**
     * 加密
     *
     * @param key 秘钥
     * @param data 明文
     * @return 密文
     */
    public static String encrypt(String key, String data) {
        SymmetricCrypto sm4 = new SymmetricCrypto("SM4/ECB/PKCS5Padding", key.getBytes());
        return sm4.encryptHex(data).toUpperCase();
    }

    /**
     * 解密
     *
     * @param key 秘钥
     * @param data 密文
     * @return 明文
     */
    public static String decrypt(String key, String data) {
        SymmetricCrypto sm4 = new SymmetricCrypto("SM4/ECB/PKCS5Padding", key.getBytes());
        return sm4.decryptStr(data);
    }

    public static void main(String[] args){
        System.out.println(encrypt("1234567891011122","{\"current\":1,\"size\":10}"));
    }
}
